package com.example.baselibrary.receivers

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.PowerManager
import android.widget.Toast
import androidx.core.content.ContextCompat

class RebootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent?) {
        // 只处理自定义的重启广播
        if (intent?.action == "com.example.baselibrary.REBOOT_ACTION") {
            // 通知用户即将重启
            Toast.makeText(context, "系统即将重启", Toast.LENGTH_LONG).show()

            // 在实际项目中，这里应该发送事件给Manager处理，而不是直接执行重启
            // 这里保留原有逻辑作为示例
            handleReboot(context)
        }
    }

    private fun handleReboot(context: Context) {
        try {
            // 尝试使用PowerManager重启
            val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager?
            if (pm != null) {
                pm.reboot(null)
            }
        } catch (e: Exception) {
            e.printStackTrace()
            // 备用方案：使用系统命令（需要root权限）
            try {
                Runtime.getRuntime().exec(arrayOf("su", "-c", "reboot"))
            } catch (ex: Exception) {
                ex.printStackTrace()
                Toast.makeText(context, "重启失败: 无权限", Toast.LENGTH_LONG).show()
            }
        }
    }
}
